﻿using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
using VM.Entity.EntityMap.User;

namespace VM.Entity.EntityDto.Invoice
{
    /// <summary>
    ///数电发票差额扣除凭证列表，开具数电差额征税-差额开票时，必传
    /// </summary>
    [SugarTable("invoice_applyDifferenceVoucherInfoList")]
    public class invoiceApplyDifferenceVoucherInfoListDto
    {
        #region Model
        private int _id;
        private int? _parentid;
        private string _detailindex;
        private string _vouchertype;
        private string _allelectronicinvoicenumbe;
        private string _invoicecode;
        private string _invoicenumber;
        private string _vouchernumber;
        private string _invoicetime;
        private string _taxtotal;
        private string _differencetaxtotal;
        private string _remark;
        private string _vouchersource;
        private string _additionalelementname;
        /// <summary>
        /// 
        /// </summary>
        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, IsOnlyIgnoreInsert = true)]
        [JsonIgnore]
        public int id
        {
            set { _id = value; }
            get { return _id; }
        }
        /// <summary>
        /// 
        /// </summary>
        [JsonIgnore]
        public int? parentId
        {
            set { _parentid = value; }
            get { return _parentid; }
        }
        /// <summary>
        /// 序号，从1开始依次增加
        /// </summary>
        public string? detailIndex
        {
            set { _detailindex = value; }
            get { return _detailindex; }
        }
        /// <summary>
        /// 凭证类型（01 数电发票、02 增值税专用发票、03 增值税普通发票、04 营业税发票、05 财政票据、06 法院裁决书、07 契税完税凭证、08 其他发票类、09 其他扣除凭证）
        /// </summary>
        public string? voucherType
        {
            set { _vouchertype = value; }
            get { return _vouchertype; }
        }
        /// <summary>
        /// allElectronicInvoiceNumber数电票号码，当voucherType传01时必传
        /// </summary>
        public string? allElectronicInvoiceNumbe
        {
            set { _allelectronicinvoicenumbe = value; }
            get { return _allelectronicinvoicenumbe; }
        }
        /// <summary>
        /// 发票代码，当voucherType传02、03、04时必传
        /// </summary>
        public string? invoiceCode
        {
            set { _invoicecode = value; }
            get { return _invoicecode; }
        }
        /// <summary>
        /// 发票号码，当voucherType传02、03、04时必传
        /// </summary>
        public string? invoiceNumber
        {
            set { _invoicenumber = value; }
            get { return _invoicenumber; }
        }
        /// <summary>
        /// 凭证号码
        /// </summary>
        public string? voucherNumber
        {
            set { _vouchernumber = value; }
            get { return _vouchernumber; }
        }
        /// <summary>
        /// 开具日期，当voucherType传01、02、03、04时必传
        /// </summary>
        public string? invoiceTime
        {
            set { _invoicetime = value; }
            get { return _invoicetime; }
        }
        /// <summary>
        /// 凭证金额，必传
        /// </summary>
        public string? taxtotal
        {
            set { _taxtotal = value; }
            get { return _taxtotal; }
        }
        /// <summary>
        /// 本次扣除金额，不能大于凭证金额，必传
        /// </summary>
        public string? differenceTaxtotal
        {
            set { _differencetaxtotal = value; }
            get { return _differencetaxtotal; }
        }
        /// <summary>
        /// 备注，当voucherType传08、09时必传
        /// </summary>
        public string? remark
        {
            set { _remark = value; }
            get { return _remark; }
        }
        /// <summary>
        /// 凭证来源，必传，1 手工录入、2 勾选录入、3 模板录入；同一张发票内保持一致
        /// </summary>
        public string? voucherSource
        {
            set { _vouchersource = value; }
            get { return _vouchersource; }
        }
        /// <summary>
        /// 附加模版名称（数电电票特有字段，附加模版有值时需要添加附加要素信息列表对象，需要先在电子税局平台维护好模版）
        /// </summary>
        public string? additionalElementName
        {
            set { _additionalelementname = value; }
            get { return _additionalelementname; }
        }
        #endregion Model

    }
}
